using System;
using System.Collections.Generic;
using System.Text;
using Mpi.Common.Collections;

namespace Xeml.Document.Contracts
{
    public interface IXemlComponent //:  IIdObject<string>
    {
        /// <summary>
        /// A global unique identifiere.
        /// </summary>
        //[Obsolete]
        //Guid ComponentId
        //{
        //    get;
        //}

        /// <summary>
        /// The name of the publisher of this component.
        /// </summary>
        string Publisher
        {
            get;
        }

        /// <summary>
        /// The version string for this component.
        /// </summary>
        Version Version
        {
            get;
        }
         
        /// <summary>
        /// The name of the component.
        /// </summary>
        string ComponentName
        {
            get;
        }

        /// <summary>
        /// The author of the component.
        /// </summary>
        string Author
        {
            get;
        }

        /// <summary>
        /// A short description about the aim of the component.
        /// </summary>
        string Description
        {
            get;
        }

        /// <summary>
        /// The universal identifiere for this handler
        /// </summary>
        string Uri
        {
            get;
        }

        /// <summary>
        /// Creates a copy of the component
        /// </summary>
        /// <returns></returns>
        IXemlComponent Copy();
    }
}
